/**
 Copyright (C) 2013 Yuyao Liang

 This source code is release under the BSD License.

 This program is distributed in the hope that it will be useful, but WITHOUT
 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 FOR A PARTICULAR PURPOSE.  See the license for more details.

 Created on Nov 8, 2013 2:43:55 PM
 */
package com.googlecode.backtest.document;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * @author lianyuy
 * 
 */
public interface IItem {

	/**
	 * @return the name
	 */
	public String getClassName();

	/**
	 * @param name
	 *            the name to set
	 */
	public void setclassName(String name);

	/**
	 * @return the list
	 */
	public ArrayList<Item> getItemList();

	/**
	 * @param list
	 *            the list to set
	 */
	public void setitemLists(ArrayList<Item> list);

	/**
	 * @return the gUID
	 */
	// @XmlAttribute(required = false)
	public String getItemID();

	/**
	 * @param GUID
	 *            the gUID to set
	 */
	// @XmlAttribute(required = false)
	public void setitemID(String GUID);

	/**
	 * 
	 * @param id
	 */
	public void addSourceID(String id);

	/**
	 * 
	 */
	public void clearSourceIDS();

	/**
	 * 
	 * @return
	 */
	public int getSourceCount();

	/**
	 * 
	 * @param index
	 * @return
	 */
	public String getSourceID(int index);

	/**
	 * 
	 * @return
	 */
	public Iterator<String> getSourceIDIterator();

	/**
	 * 
	 * @return
	 */
	public Iterator<Item> getIterator();

	/**
	 * 
	 * @return
	 */
	public List<String> getSourceIDs();

}